General purpose digital computers utilize a wide variety of programs to perform various tasks. A computer program is a series of instructions or statements, in a form which is executable by a computer, to achieve a certain result. In a computer system, these programs may be, among others, part of the operating system, compilers, editors or specific application programs. Such computer programs are also referred to as software.
Firmware is a form of a computer program which embodies instructions or data stored in a fixed means, i.e., the instructions or data stored remain intact without the need of a power source, such as a read-only memory ("ROM"), a programmable read-only memory ("PROM") or an erasable programmable read-only memory ("EPROM"), as opposed to instructions or data stored in a random access memory ("RAM"). Once the firmware is stored in one of the aforementioned fixed means, it cannot be written over without removing the integrated circuit chip in which the firmware is stored. Thus, if errors in the firmware are discovered once a computer system has been shipped to a customer, a field service technician would be required to correct the errors. The technician would have to power down the system to install either a new chip or a new circuit board containing a new chip including the corrected firmware. This procedure can be expensive and time consuming.
The advent of electrically erasable programmable read-only memory ("EEPROM") has obviated the need to remove a memory chip containing firmware with errors. An EEPROM is a read-only memory that can be erased and reprogrammed by electrical signals to store new firmware without removing the EEPROM from the circuit board or powering down the computer system. In typical EEPROMs, each location in the EEPROM can be erased separately. The drawback of typical EEPROMs is that they are on the order of one fourth the density of EPROMS. The low density of typical EEPROMs is attributable to the technology utilized to make these EEPROMs. Thus, a greater number of EEPROM chips would be required to provide sufficient storage capabilities.
As a result, present computer systems using EEPROMs typically do not use all EEPROMs for storing firmware. Such systems generally utilize some combination of EEPROMs and ROM, PROM, or EPROM to achieve full functionality and sufficient storage capabilities. Furthermore, present computer systems which protect an area of the firmware from being updated also generally use a combination of EPROMs and EEPROMs. The EPROMs are used to store the firmware that is protected from the updating process.
The above described computer systems overcome the low density problem of the EEPROMs but lose the ability to update a large percentage of the firmware in the field since typically, only a small amount of the firmware is stored in the EEPROM. Most of the operable code is stored in EPROMs. Thus, updates to the firmware resident in the EPROM would still require a field service technician to either replace the EPROM or install a new circuit board containing EPROM with the updated firmware.
Recent advances in technology have obviated the disparity in densities between EEPROMs and EPROMs. Now, the entire system firmware can reside in EEPROMs. While these advances eliminate the necessity for using a combination of EPROMs and EEPROMs for firmware storage, they have also raised the problem of how to maintain a minimum amount of firmware constant in the system. Thus, without providing some safeguards, a user could inadvertently or intentionally corrupt the firmware when performing updates to the extent that a total loss of system intelligence could result. Accordingly, the services of a skilled technician would still be required to perform firmware updates in the field to prevent such corruption of the firmware.